/*
3037. 十六进制加法
DESCRIPTION
STATISTICS
3 DISCUSSIONS

Time limit per test: 2.0 seconds

Memory limit: 256 megabytes

请编写程序实现两个十六进制整数的加法。

例如：十六进制整数 3762 和 05C3，3762+05C3 =3D25

十六进制整数 CB9 和 957，CB9+957=1610

Input

第 1 行：一个整数 T (1≤T≤10) 为问题数。

接下来 T 行，每行输入两个十六进制整数 n 和 m （n，m 为不超过 200 位的十六进制整数），A~F 全部为大写字母。 两个整数之间用一个空格分隔。
Output

对于每个问题，输出一行问题的编号（0 开始编号，格式：case #0: 等）。然后对应每个问题在一行中输出两个十六进制整数相加的结果，字母全部用大写字母。
Examples
Input

3
3762 05C3
CB9 957
F 1

Output

case #0:
3D25
case #1:
1610
case #2:
10
*/

#include <stdio.h>
#include <string.h>

char n[201],m[201];  //保存两个十六进制数

void solve()
{
    int i, j, len1, len2, k=0;
    char a[202]; //结果字符串可能有进位，所以是201位，加上字符串结尾的'\0'，是202位。
    len1 = strlen(n);
    len2 = strlen(m);

     /* 
      * 1、从两个字符串最后一位 (len1-1, len2-1)逐位向前取出一个字符
      * 2、把字符转换成16进制的数值，相加，再转换成字符保存到 a[k] 中，注意进位。
      * 3、如果一个字符串已经到头了，则执行另一个字符加‘0’的操作，直到两个字符串都到头
      * 4、因为结果字符串是逆序保存的，所以输出的时候不能直接输出。
      */

    int carry=0;    // 保存进位
    for (i=len1-1, j=len2-1, k=0; i>=0 || j>=0; i--, j--, k++)
    {
        int x=0, y=0, result;

        // 读取n中指定位数值
        if (i>=0)
            if (n[i]>='A' && n[i]<='F')
                x = n[i] - 'A' + 10;
            else
                x = n[i] - '0';

        // 读取y中指定位数值
        if (j>=0)
            if (m[j]>='A' && m[j]<='F')
                y = m[j] - 'A' + 10;
            else
                y = m[j] - '0';

        result = x + y + carry; //计算和，包括下一位的进位
        carry = result / 16;    // 计算往上的进位, 十六进制数，所以是除16
        result %= 16;       // 本位的结果，十六进制数，所以对16取余

        //写入本位
        if (result>=10)
            a[k] = 'A' + result - 10;
        else
            a[k] = '0' + result;
    }
    if (carry>0)
        a[k] = '0' + carry;
    else
        k--;    // 如果没有进位，去掉最后位。
    
    for (i=k; i>=0; i--)
        printf("%c", a[i]);
    printf("\n");
}

int main()
{
    int t,i;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        scanf("%s%s",n,m);
        printf("case #%d:\n",i);
        solve();
    }
}

